SSM(十一) 基于 dubbo 的分布式架构(中)

简介: 现在越来越多的互联网公司还是将自己公司的项目进行服务化,这确实是今后项目开发的一个趋势,就这个点再凭借之前的SSM项目来让第一次接触的同学能快速上手。

spring-dubbo-config.xml


<dubbo:application name="ssm-service" owner="crossoverJie"
        organization="ssm-crossoverJie" logger="slf4j"/>
    <dubbo:registry id="dubbo-registry" address="zookeeper://192.168.0.188:2181"
        file="/tmp/dubbo.cachr" />
    <dubbo:monitor protocol="registry" />
    <dubbo:protocol name="dubbo" port="20880" />
    <dubbo:provider timeout="15000" retries="0" delay="-1" />
    <dubbo:consumer check="false" timeout="15000" />


其实就是配置我们服务注册的zk地址,以及服务名称、超时时间等配置。


spring-dubbo-provider.xml


<dubbo:annotation package="com.crossoverJie.api.impl" />


这个配置扫描注解包的位置,一般配置到接口实现包即可。


spring-dubbo-consumer.xml


这个是消费者配置项,表明我们需要依赖的其他应用。


这里我们在SSM-BOOT项目中进行配置:


<dubbo:reference id="userInfoApi"
        interface="com.crossoverJie.api.UserInfoApi" />


直接就是配置的刚才我们提供的那个用户查询的接口,这样当我们自己的内部项目需要使用到这个服务只需要依赖SSM-BOOT即可,不需要单独的再去配置consumer。这个我有在上一篇SSM(十) 项目重构-互联网项目的Maven结构中也有提到。


安装管理控制台


还有一个需要做的就是安装管理控制台,这里可以看到我们有多少服务、调用情况是怎么样等作用。


这里我们可以将dubbo的官方源码下载下来,对其中的dubbo-admin模块进行打包,将生成的WAR包放到Tomcat中运行起来即可。


但是需要注意一点的是:


需要将其中的dubbo.properties的zk地址修改为自己的即可。


dubbo.registry.address=zookeeper://127.0.0.1:2181
dubbo.admin.root.password=root
dubbo.admin.guest.password=guest


到时候登陆的话使用root,密码也是root。


使用guest,密码也是guest。


登陆界面如下图:


QQ20170407-001924@2x.jpg


其中我们可以看到有两个服务以及注册上去了,但是没有消费者。


消费服务


为了能够更直观的体验到消费服务,我新建了一个项目:


github.com/crossoverJi…


其中在SSM-CONSUMER-API中我也定义了一个接口:


/**
 * Function:薪资API
 * @author chenjiec
 * Date: 2017/4/4 下午9:46
 * @since JDK 1.7
 */
public interface SalaryInfoApi {
    /**
     * 获取薪资
     * @param userId
     * @return
     * @throws Exception
     */
    public SalaryInfoRsp getSalaryInfo(int userId) throws Exception;
}


因为作为消费者的同时我们也对外提供了一个获取薪资的一个服务。


SSM-CONSUMER-SERVICE模块中进行了实现:


/**
 * Function:
 * @author chenjiec
 * Date: 2017/4/4 下午9:51
 * @since JDK 1.7
 */
@Service
public class SalaryInfoApiImpl implements SalaryInfoApi {
    private static Logger logger = LoggerFactory.getLogger(SalaryInfoApiImpl.class);
    @Autowired
    UserInfoApi userInfoApi ;
    /**
     * 获取用户信息
     *
     * @param userId
     * @return
     * @throws Exception
     */
    @Override
    public SalaryInfoRsp getSalaryInfo(int userId) throws Exception {
        logger.info("薪资查询Id="+userId);
        //返回对象
        SalaryInfoRsp salaryInfoRsp = new SalaryInfoRsp() ;
        //调用远程服务
        UserInfoRsp userInfo = userInfoApi.getUserInfo(userId);
        salaryInfoRsp.setUsername(userInfo.getUserName());
        return salaryInfoRsp;
    }
}


其中就可以直接使用userInfoApi调用之前的个人信息服务。


再调用之前需要注意的有点是,我们只需要依赖SSM-BOOT这个模块即可进行调用,因为SSM-BOOT模块已经为我们配置了消费者之类的操作了:


<dependency>
            <groupId>com.crossoverJie</groupId>
            <artifactId>SSM-BOOT</artifactId>
        </dependency>



相关文章
|
1月前
|
监控 负载均衡 Dubbo
Dubbo 框架揭秘:分布式架构的精髓与魔法【一】
Dubbo 框架揭秘:分布式架构的精髓与魔法【一】
180 0
|
1月前
|
Dubbo Java 应用服务中间件
Spring Boot Dubbo 构建分布式服务
Spring Boot Dubbo 构建分布式服务
58 0
|
1月前
|
Dubbo Cloud Native 网络协议
【Dubbo3技术专题】「服务架构体系」第一章之Dubbo3新特性要点之RPC协议分析介绍
【Dubbo3技术专题】「服务架构体系」第一章之Dubbo3新特性要点之RPC协议分析介绍
46 1
|
3天前
|
Java 编译器 Maven
使用intellij idea搭建SSM架构的maven项目 详细
使用intellij idea搭建SSM架构的maven项目 详细
18 4
|
2天前
|
前端开发 JavaScript Java
计算机Java项目|基于SSM架构的网上书城系统
计算机Java项目|基于SSM架构的网上书城系统
|
3天前
|
Java Maven
使用intellij idea搭建SSM架构的maven项目 配置文件
使用intellij idea搭建SSM架构的maven项目 配置文件
12 0
|
1月前
|
Dubbo Java 应用服务中间件
Java从入门到精通:3.2.2分布式与并发编程——了解分布式系统的基本概念,学习使用Dubbo、Spring Cloud等分布式框架
Java从入门到精通:3.2.2分布式与并发编程——了解分布式系统的基本概念,学习使用Dubbo、Spring Cloud等分布式框架
231 0
|
1月前
|
人工智能 自然语言处理 开发者
首个基于SSM-Transformer混合架构,开源商业大模型Jamba
【4月更文挑战第13天】AI模型部署与优化迎来新解决方案,ai21labs推出的SSM-Transformer混合架构大模型Jamba结合英伟达NVIDIA NIM服务。Jamba模型在自然语言处理上表现出色,开源特性促进AI技术普及,而NIM提供跨平台、高性能的部署支持。不过,技术门槛、资源需求及优化挑战仍需考虑。
53 6
首个基于SSM-Transformer混合架构,开源商业大模型Jamba
|
1月前
|
Cloud Native Dubbo 应用服务中间件
【Dubbo3高级特性】「微服务云原生架构」带你从零基础认识搭建公司内部服务用户中心体系(实战指南-序章)
【Dubbo3高级特性】「微服务云原生架构」带你从零基础认识搭建公司内部服务用户中心体系(实战指南-序章)
75 0
|
1月前
|
Dubbo Cloud Native 应用服务中间件
【Dubbo3 终极特性】「云原生三中心架构」带你探索 Dubbo3 体系下的配置中心和元数据中心、注册中心的原理及开发实战(中)
【Dubbo3 终极特性】「云原生三中心架构」带你探索 Dubbo3 体系下的配置中心和元数据中心、注册中心的原理及开发实战(中)
59 1