2021-04-28-微服务架构演变过程(一)

演变过程

  • 传统单体架构——分布式架构——SOA面向服务架构——微服务架构模式

传统架构

  • 传统架构: 就是我们在以前所学习到SSM、SSH 、分层架构模式。
    Com.mayikt.controller --控制层 控制页面跳转 整合ftl/jsp 渲染页面
    Com.mayikt.service —业务逻辑
    Com.mayikt.dao—数据访问层。 mybatis、hibernate等。
    前端到后端都是一个人开发的
    将所有的业务逻辑代码全部都放入在同一个jar包中,没有实现解耦,
    如果中间有一个小的模块,引发宕机的情况下,会导致整个系统无法使用。
  • 优点:
    1.部署简单、开发容易(不需要学习分布式技术 比如 rpc框架 分布式解决方案)
    无法实现抗高并发。
    应用场景:政府项目、管理系统、ERP、OA、人事管事系统 并发量比较少。
  • 缺点:
    2.没有实现解耦、不适合于多团队人数开发,容易引发代码提交冲突问题。

分布式架构

  • 分布式架构模式基于传统架构演变过来的,会根据不同的业务实现拆分n多个不同子系统。
    会员系统–
    订单系统
    支付系统
    秒杀系统
    交易系统。
    案例:京东官网。
    每个子系统中都有自己的团队来实现开发,具有独立数据库、独立缓存、独立mq。
    降低我们系统的耦合度,从而可以实现多团队开发。
    系统:----- 管理系统+前台用户使用系统

  • 京东官网:
    www.jd.com
    https://jiadian.jd.com/-- 京东家电子系统
    https://miaosha.jd.com/ 秒杀子系统
    https://auction.jd.com/home.html 拍卖子系统

    www.jd.com— 顶级域名
    子域名
    Pay.jd.com —支付系统 解析ip
    最终实际根据多个不同域名实现跳转整合成一个大项目。

  • 优点:
    可以实现解耦、如果某子系统宕机的情况下,不会影响其他的子系统,适合于多团队人数实现开发。

  • 缺点:
    部署比较复杂的、开发难度比较大、需要有团队沟通成本。

SOA面向服务架构

  • SOA面向服务架构模式,面向接口开发 面向业务逻辑层开发。
    就是将整个项目中共同的业务逻辑抽取成一个单独的项目,该项目命名是为
    服务,提供给其他的服务实现调用,调用的过程中就会涉及到RPC远程调用技术。
  • RPC调用技术:feign、httpclient、gpc、基于netty手写dubbo、dubbo
  • 优点:
    减少我们代码冗余性问题。
    服务:只是有接口 没有控制层 没有视图层
    这种模式叫作SOA面向业务逻辑的开发
    在这里插入图片描述
  • SOA架构模式特点:
    1.SOA架构通讯中,采用XML方式实现传输数据、在高并发下通讯过程中协议存在非常大冗余性,所以在最后微服务架构模式中使用JSON格式替代了XML。
    2.SOA架构模式实现方案为Web Service或者是ESB企业服务总线 底层通讯协议SOAP协议(Http+XML)实现传输。
    在这里插入图片描述
  • 传统政府、银行项目还是保留的在使用Web Service
    互联网公司肯定采用http+json形式实现运输
  • ESB企业服务总线
    解决多系统之间跨语言通讯,数据协议的转换,提供可靠消息传输。

基于IDEA快速构建Web Service

  • Web Service服务器端、
@WebService
public class UserService {

    @WebMethod
    public String getUser(Long id) {
        return "mayikt用户:" + id
                ;
    }

    public static void main(String[] args) {
        Endpoint.publish("http://192.168.18.218:8089/service/UserService", new UserService());
        System.out.println("服务发布成功");

    }
}

http://192.168.18.218:8089/service/UserService?wsdl 获取wsdl
wsdl文件描述接口的调用地址 服务的接口 方法 参数等。

  • Web Service客户端
    在这里插入图片描述

注意:一定要启动服务发布者,在启动客户端生成调用webservice类。
如果idea2020右键没有webservice的话,可以在顶部菜单栏tools->webservice找到
在这里插入图片描述
url要填上你的服务端的地址
在这里插入图片描述

public class WebServiceClient {
    public static void main(String[] args) throws ServiceException, RemoteException {
        UserServiceServiceLocator userServiceServiceLocator = new UserServiceServiceLocator();
        UserService userService = userServiceServiceLocator.getUserServicePort();
        String result = userService.getUser(10L);
        System.out.println("result:" + result);
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值