3.微服务开发

妖狐艹你老母 2023-06-15 14:29 66阅读 0赞

3-1 微服务业务分析

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0FuZHk3MTA2NjA1NDE_size_16_color_FFFFFF_t_70

用户登录要求单点登录,也就是说用户在一个地方登录之后,不需要重复登录,并且最好不要使用session,微服务最好是无状态的。登录之后有一个课程服务,可以查看课程列表,课程信息,以及

对课程进行修改删除工作。

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0FuZHk3MTA2NjA1NDE_size_16_color_FFFFFF_t_70 1

首先有一个客户端,客户端访问的是APIGateway,APIGateway用来访问用户service和课程service,这两个service对外提供基于http协议的rest api接口,gateway通过rest api去访问service,用户edgeservice通过Thrift访问用户服务,课程edgeservice通过Dubbo访问课程服务,用户服务和课程服务都有自己的数据库,使用java语言开发,而信息服务用户服务登录的时候需要调用,使用python语言开发。用户服务使用redis来作为集中式缓存,存储用户相关的信息,这样可以做的去session,服务是单点登录的,用户登录时需要验证自己的token或者tikite是否是正确的,然后使用这个东西去换取用户的基本信息,所以课程服务是需要访问用户服务的。Dubbo是基于kv的存储来进行服务的发布和订阅的,我们使用Zookeeper来作为服务的注册和发现,而课程信息里面包括人的信息,所以我们要在课程详情页里面调用用户服务。

3-2 Thrift 安装与验证

去Thrift 官网 http://thrift.apache.org/ 可以下载和安装thrfit,有不同版本的指导说明

1、安装依赖

gif.latex

  1. yum -y install automake libtool flex bison pkgconfig gcc-c++ boost-devel libevent-devel zlib-devel python-devel ruby-devel openssl-devel

2、安装thrift

  1. wget "http://mirror.bit.edu.cn/apache/thrift/0.10.0/thrift-0.10.0.tar.gz"
  2. ./configure --with-boost=/usr/local
  3. make -j24
  4. make install

3、验证是否安装成功

  1. thrift
  2. Usage: thrift [options] file
  3. Use thrift -help for a list of options

4.验证thrift是否可用gif.latex

  1. mkdir thrift-test
  2. vim demo.thrift
  3. //编写thrift文件
  4. namespace py thrift.demo
  5. service DemoService {
  6. void sayHello(1:string name);
  7. }
  8. //执行thrift文件,生成python源码
  9. thrift --gen py demo.thrift

发表评论

表情:
评论列表 (有 0 条评论,66人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Kitex服务开发实践:ETCD服务注册

    服务注册通常用于分布式系统或微服务架构中,是一种用于管理和发现这些分布式服务的机制。它的目标是让服务能够动态地找到其他服务,并能够与其进行通信,而无需显式地配置其位置信息 本

    相关 服务下Java开发实践

    从写下第一篇对 [分布式系统][Link 1] 的理解 ,转眼过去两年,技术在快速迭代发展 微服务, 云原生, 服务网格, Service Mesh等新概念层出不穷,本文旨在回

    相关 SpringCloud 服务最佳开发实践

    现在基于SpringCloud的微服务开发日益流行,网上各种开源项目层出不穷。我们在实际工作中可以参考开源项目实现很多开箱即用的功能,但是必须要遵守一定的约定和规范。 本文结