01、业务场景设定
--用户的注册登录,支持跨域[也就是登录之后再登陆其他界面是不需要登陆的,同时尽可能不要使用session,因为微服务是无状态的]
--用户登录
--登陆以后对课程进行curd操作
02、创建maven工程
--选择maven工程
--groupid: com.imooc
--artifactid: micro-service
--项目名自动生成
--整个项目示意图如下所示:
--SSO[单点登录]:一次登录无需重复,使用redis存储用户信息
--两个服务采取不同RPC框架:Dubbo 和 Thrift
--两大类服务之间独立使用数据库
--接口是REST FUL接口
--课程服务发布在Zookeeper上
--RPC: RPC全称为Remote Procedure Call,意为远程过程调用
--假设有两台服务器A,B.A服务器上部署着一个应用a,B服务器上部署着一个应用b,现在a希望能够调用b应用的某个函数(方法),但是二者不在同一个进程内,不能直接调用,就需要通过网络传输,在AB服务器之间建一条网络传输通道,a把参数传过去,b接收到参数调用自己的方法,得到结果,再通过网络传回给a,简单讲就是A通过网络来调用B的过程.这个过程要涉及的东西很多,比如多线程,Socket,序列化反序列化,网络I/O,很复杂,于是牛掰的程序员把这些封装起来做成一套框架,供大家使用,就是RPC框架.
03、Thrift安装和验证
--下载:http://www.apache.org/dyn/closer.cgi?path=/thrift/0.13.0/thrift-0.13.0.exe
--将thrift-0.13.0.exe重命名为thrift.exe文件并配置到环境变量中去
--输入thrift,显示如下表示已经完成:
Usage: thrift [options] file
Use thrift -help for a list of options
--测试demo:
namespace java com.imooc.thrift.demo
namesoace py thrift.demo
service DemoService{
void sayHello(1:string name);
}
--使用命令生成java文件
--thrift -gen java test.thrift
--使用命令生成py文件
--thrift -gen py test.thrift
04、python开发信息服务
--删掉创建maven是生成的不必要文件
--主要是src文件夹
--创建python文件夹:message-thrift-python-service
--装插件:https://plugins.jetbrains.com/plugin/631-python/versions/
--下载之后之间install from disk
--重启idea
--在message-thrift-python-service创建thrift文件夹
--定义接口文件:message.thrift,代码如下:
namespace java com.imooc.thrift.message
namespace py message.api
service MessageService{
bool sendMobileMessage(1:string mobile, 2:string message);
bool sendEmailMessage(1:string email, 2:string message);
}
--写脚本执行接口生成命令,视具体系统使用bat / sh脚本,这里是bat代码如下:
thrift --gen py -out ../ message.thrift
--安装 thrift bash bat[cmdsupport]三个support插件
--bat不安也行,直接执行脚本即可
--thrift生成后,开始编写代码接口
--在thrift同级文件夹message中创建message_service.py文件,开始写接口
--