Java基于Dubbox 的分布式服务的项目架构
来源:互联网 发布:ipad淘宝购物车打不开 编辑:程序博客网 时间:2024/06/08 18:42
- 结构
web: API项目
service: 后台服务
common: 工具类,通用的一些常量,设置等
- maven
pom.xmlsrc/ main java resources test java resources
2.1 pom配置文件:
多module
profile: 一种设置
指定采用哪种设置: mvn xxxx xxxx -P {profileName} /online/dev/test
mvn xx -P [dev/test/online]
clean jetty:run -Djetty.port=8081
指定哪些文件会采用profile中设置的值
${xxxx}<resource> <directory>${project.basedir}/src/main/resources</directory> <filtering>true</filtering></resource>
- dubbo(x)
dubbo是阿里的开源项目。 http://dubbo.io/
dubbox是当当基于dubb的基础上继续维护开发。https://github.com/dangdangdotcom/dubbox
正常情况:
controller –>service–>dao(一个项目里面)
分布式:
serviceProvider(提供者) serviceConsumer(消费者) registion(注册中心)
UserController ->UserService
service项目构成
client 声明interface定义的接口,最终会结合web里面的配置一起配合达到和注册中心沟通的目的。
interface 定义接口和module, 相当于定于契约的地方,服务的提供者和消费者都需要知道的东西。
impl 接口的实现,和注册的配置(包括注册中心的地址,需要注册的接口等,把接口暴露给注册中心)。
——Main.java 继承 extends Bootstrap{public static void main(String[] args) { boot(null); } 使服务不死
web的构成:
- web.xml 需要包括service-client中的配置文件。
- controller->facade->facadeImpl
cache(redis的实现)
Redis是基于内存的KV数据库: String, Set, List, Map, zSet
超时机制部署
nginx->tomcat->service
service的部署(或 用命令 Java -jar xxxxService.jar来启动 )
start.sh stop.shzookeeper
复制zoo_sample.cfg,重新命名为zoo.cfg。
linux运行命令: sh xxx.sh
java命令: jps -lv
redis- dubboAdmin
修改dubbox\dubbo-admin\src\main\webapp\WEB-INF\dubbo.properties
dubbo.registry.address=zookeeper://127.0.0.1:2181 //地址
dubbo.admin.root.password=root //root/root
dubbo.admin.guest.password=guest //guest/guest
- Java基于Dubbox 的分布式服务的项目架构
- 互联网项目架构之基于服务的分布式架构
- 互联网项目架构之基于服务的分布式架构
- 分布式服务框架 dubbo/dubbox 的搭建
- 基于SOA的电商项目分布式架构
- 基于消息的分布式架构
- 基于消息的分布式架构
- 基于dubbo的分布式架构
- 基于消息的分布式架构
- 基于消息的分布式架构
- 基于消息的分布式架构
- 基于消息的分布式架构
- 基于消息的分布式架构
- Java 分布式服务架构
- dubbox -- 服务的启动与初始化
- Dubbo/Dubbox的服务暴露(一)
- 基于Dubbo的分布式系统架构-在Linux操作系统上手工部署Dubbo服务
- 基于Dubbo的分布式系统架构(五):在Linux操作系统上手工部署Dubbo服务
- JAVA NIO non-blocking模式实现高并发服务器
- POJ
- RecyclerView实现横向滚动
- 关于 ES7/ES8的一些新特性
- OpenLDAP服务端+PhpLdapAdmin 基本安装与配置
- Java基于Dubbox 的分布式服务的项目架构
- HANA基础篇 YTD实例
- js中this的使用
- C++中的静态绑定和动态绑定
- Base64Encoder编码和解码
- 微信小程序如何实现底部导航栏
- 一个按键程序的思考
- note_cloud--笔记本加载功能
- PAT 1060爱丁顿数