01 创建go-micro项目-查看生成的 proto文件

02 创建go-micro项目-查看生成的main文件和handler
创建 micro 服务
命令:micro new --type srv test66
框架默认自带服务发现:mdns。
使用consul服务发现:
-
初始consul服务发现: consulReg := consul.NewRegistry()
-
在 NewService 中 添加 服务。 micro.Registry(consulReg ),
03 http补充说明知识
使用 go-micro框架 创建 客户端
命令:micro new --type web test77
补充 http 相关知识:
-
路由器:资源分发
-
路由:请求分发。
-
service.HandleFunc("/test77/call", handler.Test77Call)
-
将 /test77/call 这个请求,通过 回到函数 Test77Call() 处理。
-
URL:
-
https://ip+port/ 找到 pc机,找到 对应进程
-
资源路径:在代码中,称之为路由。
-
"/ " : 代表 主机上进程 对应的默认资源。
-
http协议,自动找当前目录下的 index.html 文件,做默认页面。
go-micro 框架 测试使用 分析图
04 go-micro框架服务端-客户端测试
gin 框架
go常见的web框架:gin、beego、echo、Iris 。。。
实现简单的 web
http 常用方法与 数据库访问 一一对应。
-
GET ------ 查 ------ 获取数据
-
Post ------ 增 ------ 增加数据
-
Put ------ 改 ------ 更新数据
-
Delete ------ 删 ------ 删除数据
05 gin框架介绍和测试
06 gin框架客户端与micro服务端对接
使用 gin 框架创建最简单的web
```go
func main() {
// 1. 初始化路由 -- 官网:初始化 web 引擎
router := gin.Default()
// 2. 做路由匹配
router.GET("/", func(context *gin.Context) {
context.Writer.WriteString("hello world!")
})
// 3. 启动运行
router.Run(":8080")
}
```
07 使用访问发现consul测试
gin 框架的客户端 与 微服务 对接
-
封装回调函数, 给 router.Get() 设置
-
拷贝 微服务的 " 密码本" protobuf 到 web 中
-
修改 protobuf文件的 包名。 test66别名 "test66web/proto/test66"
-
实现 回调函数:
-
初始化客户端。 microClient := NewTeset66Sevice(服务名,client.DefaultClient)
-
调用远程服务。 resp, err := microClient.Call(context.TODO, &test66.Request{
})
- 将 返回的 数据, 显示到 浏览器。 context.Writer.WriteString(resp.Msg);
```go
package main
import (
"fmt"
test66 "test66web/proto/test66" // test66 为包的别名.
"github.com/micro/go-micro/client"
"context"
)
08 consul使用图解和RESTful
func CallRemote(ctx *gin.Context) {
// 1. 初始化客户端
microClient := test66.NewTest66Service("go.micro.srv.test66", client.DefaultClient)
fmt.Println()
// 2. 调用远程服务
resp, err := microClient.Call(context.TODO(), &test66.Request{
Name:"xiaowang",
})
if err != nil {
fmt.Println("call err:", err)
return
}
// 为了方便查看, 在打印之前将结果返回给浏览器
ctx.Writer.WriteString(resp.Msg)
fmt.Println(resp, err)
}
func main() {
// 1. 初始化路由 -- 官网:初始化 web 引擎
router := gin.Default()
// 2. 做路由匹配
router.GET("/", CallRemote)
// 3. 启动运行
router.Run(":8080")
}
09 MVC简介
指定 consul 服务发现到 go-micro 服务和 gin 框架客户端中
- mdns服务发现: (组播)支持的服务,必须是本地服务, 局域网内的服务。
修改 go-micro 微服务
-
consulReg := consul.NewRegistry() 初始化 consul服务发现
-
添加 服务 service := micro.NewService(
micro.Name("go.micro.srv.test66"),
micro.Registry(consulReg),
micro.Version("latest"),
)
- 在命令行,执行 consul agent -dev
10 创建项目-创建目录结构-查看文档-导入错误处理包
修改 gin 框架 web服务 (客户端)
-
consulReg := consul.NewRegistry() 初始化 consul服务发现
-
microClinet := micro.NewService( micro.Registry(consulReg ) )
-
test66.NewTest66Service("服务名",microClinet.Client() )
测试:浏览器键入: 192.168.6.108:8080 ------> hello xiaowang

11 创建项目-资源目录html介绍
REST
REST全称是Representational State Transfer: 表述性 状态 转义
本质:一种代码设计风格。 web开发中常用。------遵循风格!
使用:一般以 http 4 种请求方法, 来确定对某一资源(URI:标识符。名词)的 固定操作。
-
获取数据:GET
-
添加数据:POST
-
修改数据:PUT
-
删除数据:Delete
满足 REST 设计风格的, 称之为 "RESTful"
MVC
-
是一种常见的 "代码组织架构", 可以在开发中,对数据进行处理并解耦。
-
model:模型。 处理数据库相关的文件。
-
veiw:视图。处理显示相关的文件。 网站:html
-
controller:控制器。处理具体业务! 联动 m 和 v
-
MVC 与语言无关!是常见的 代码组织架构。
