
正文
java分布式代码 java分布式解决方案
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
java分布式开发涉及到哪些技术
分布式是一种思想,范围很广,我得先知道它的诞生:
以前是一个数据库 一个JSP 就可以做一个应用了,后来随着业务复杂,我们开始分层,比如MVC之类的,再后来我们的数据越来越多了,比如有上亿的数据,这个时候我们一个数据库查询太慢了,就开始分库,这也算是分布式的一种。
还有比如我们的系统访问的人多了,比如双11,上千万人同时访问,我们的服务器(网站)支持不住了,这个时候就要部署到很多个服务器,每个服务器分摊请求,这也是分布式
当然随着业务扩大, 我们得分业务了,比如注册登录的,物流的,卖东西的 等等,不同的系统,但是各个系统之间进行协调,也算分布式一种
以上都算是分布式的来源,主要是解决 压力过大,大家协同工作的,那么这就涉及到一些常用的东西,或者像你说的的技术
1.你用N个数据库才放数据,至少CRUD 方面就 麻烦些了,得用cobar,tddl,mysql-proxy 等协调
2.服务器:你部署了很多服务器,肯定得用个东西来分发请求这些吧,nginx,apache 等分发请求。
3.你公司有很多系统,想很好的联系在一起,光用接口不满足了,得用一些JMS ,像activemq,ons 之类的来协调吧
4.为了解决io问题,得加缓存吧,那么缓存对应上面的,也得分布式吧,就涉及memcache,redies 等等
上面就简单的介绍了下 分布式 的东西,还有很多啦,这是常用的一些,希望你能慢慢来,不是一下子 能理解得
相关问答
Q1: java的框架spring如何配置分布式事务?
分布式事务是指操作多个数据库之间的事务,在tomcat下是没有分布式事务的,可以借助于第三方Jotm和Automikos实现,下面就写一个使用Jotm实现分布事务的例子,如有不足,请各位大大指点:
Dao及实现,先写出一个interface再去实现他,可能有些人觉得直接写实现类多好,但我还是建议为了结构清晰,增强代码的可读性,可维护性还是先写接口再去实现的好:
先写一个interface,定义要实现的方法:
实现接口,传入一个String ds来判断调用哪个JdbcTemplate:
service及实现:
还是接口与他的实现:
持久化的操作:
applicationContext.xml
基本的spring配置以及Jotm bean;
JTA事务管理器,数据源datasourceA和datasourceB配置:
事务切面配置aop,通知配置以及dao,service配置:
单元测试,在实际项目中就是写一个controller:
Q2: java怎么实现redis分布式锁
一、使用分布式锁要满足的几个条件:
系统是一个分布式系统(关键是分布式,单机的可以使用ReentrantLock或者synchronized代码块来实现)
共享资源(各个系统访问同一个资源,资源的载体可能是传统关系型数据库或者NoSQL)
同步访问(即有很多个进程同事访问同一个共享资源。没有同步访问,谁管你资源竞争不竞争)
二、应用的场景例子
管理后台的部署架构(多台tomcat服务器+redis【多台tomcat服务器访问一台redis】+mysql【多台tomcat服务器访问一台服务器上的mysql】)就满足使用分布式锁的条件。多台服务器要访问redis全局缓存的资源,如果不使用分布式锁就会出现问题。 看如下伪代码:
long N=0L;
//N从redis获取值
if(N5){
N++;
//N写回redis
}
复制代码
Q3: java名词解释: 分布式: 解释性: 可移植性: 模块性: 都是什么意思!!!!!!
分布式:JAVA的不同组件客户端、服务器、数据库等在不同的机器上,它们通过网络连接协同工作
解释性:JAVA代码不会被编译为可执行文档,而是把生成字节码,只有在运行时字节码才被解释为机器码并执行相应的功能。
可移植:JAVA运行于JVM,因为他严格规定了基本数据类型的长度,只要JVM接口一致,那么任何你编译的JAVA字节码都可以被执行。所以说,通常说JAVA 可以一次编译,到处执行。
模块:模块性的目的是为了解决Java日渐庞大这个问题。(我的理解是把一个庞大的项目分为多个不同的模块,尽量减少模块之间的耦合性。这样程序员就不必纠缠于横向代码之间的关系。)
Q4: Java-JAVA中都有哪几种分布式实现方式,各有什么优缺点
常用的有EJB、rmi、Web Service,还有Hessian、NIO等,它们的优缺点比较比下:
1:EJB
优势:可扩展性好,安全性强,支持分布式事务处理。
劣势:不能跨语言;配置相对复杂,不同J2EE容器之间很难做无缝迁移。
2:rmi
优势:面向对象的远程服务模型;基于TCP协议上的服务,执行速度快。
劣势:不能跨语言;每个远程对象都要绑定端口,不易维护;不支持分布式事务JTA,RMI框架对于安全性、事务、可扩展性的支持非常有限。
3: Web Service
优势:跨语言、跨平台,SOA思想的实现;安全性高;可以用来兼容legacy系统的功能
劣势:性能相对差,不支持两阶段事务
4:Hessian
优势:使用简单,速度快;跨语言,跨平台;可以用来兼容legacy系统的功能。
劣势:安全性的支持不够强,不支持两阶段事务。
5:NIO(Mina/Netty)
优点:基于TCP通信,效率上高于HTTP的方式,非阻塞IO应对高并发绰绰有余。根据具体的需要制定数据传输的格式,可扩展性强。
缺点:不能跨语言,无法穿透防火墙。
Q5: java分布式开发与java开发那个好
Java分布式开发是指将原本位于单一节点的操作系统资源和应用程序分布到多个节点(以网络形式连接)上,以按需合理使用各个节点的资源,实现多台计算机的统一管理,面向大规模集群部署,虚拟化部署应用服务,实现系统高可用,实现可扩充部署等效果。
一般来说,java分布式开发难度较大,要求开发者对分布式技术有深入理解,可操作性也不强,且分布式开发多样性也颇多,掌握起来需要花费大量时间。 因此,从简单开发的角度出发,Java开发可能比Java分布式开发更好。Java开发不仅对开发者友好,在实现快捷功能、编写可维护代码上都具有一定优势,支持一定的分布式开发也是可行的。
java分布式代码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java分布式解决方案、java分布式代码的信息别忘了在本站进行查找喔。








