message.go 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. // Code generated by goctl. DO NOT EDIT!
  2. // Source: message.proto
  3. package main
  4. import (
  5. "app.yhyue.com/moapp/MessageCenter/entity"
  6. "app.yhyue.com/moapp/MessageCenter/rpc/internal/config"
  7. "app.yhyue.com/moapp/MessageCenter/rpc/internal/server"
  8. "app.yhyue.com/moapp/MessageCenter/rpc/internal/svc"
  9. "app.yhyue.com/moapp/MessageCenter/rpc/message"
  10. "app.yhyue.com/moapp/jybase/mysql"
  11. "database/sql"
  12. "flag"
  13. "fmt"
  14. "github.com/tal-tech/go-zero/core/conf"
  15. "github.com/tal-tech/go-zero/zrpc"
  16. clientv3 "go.etcd.io/etcd/client/v3"
  17. "google.golang.org/grpc"
  18. "log"
  19. "time"
  20. )
  21. var configFile = flag.String("f", "etc/message.yaml", "the config file")
  22. var EtcdCli *clientv3.Client
  23. var Mysql *mysql.Mysql
  24. func main() {
  25. flag.Parse()
  26. var c config.Config
  27. conf.MustLoad(*configFile, &c)
  28. ctx := svc.NewServiceContext(c)
  29. srv := server.NewMessageServer(ctx)
  30. s := zrpc.MustNewServer(c.RpcServerConf, func(grpcServer *grpc.Server) {
  31. message.RegisterMessageServer(grpcServer, srv)
  32. })
  33. defer s.Stop()
  34. fmt.Printf("Starting rpc server at %s...\n", c.ListenOn)
  35. s.Start()
  36. }
  37. //创建orm引擎
  38. func init() {
  39. conf.MustLoad(*configFile, &config.ConfigJson)
  40. var err error
  41. //连接etcd
  42. entity.EtcdCli, err = clientv3.New(clientv3.Config{
  43. Endpoints: config.ConfigJson.Etcd.Hosts,
  44. DialTimeout: 5 * time.Second,
  45. })
  46. if err != nil {
  47. log.Printf("connect to etcd failed, err:%v\n", err)
  48. return
  49. }
  50. log.Println("connect to etcd success")
  51. log.Println("开始初始化数据库。。。。。")
  52. //初始化mysql
  53. entity.Mysql = &mysql.Mysql{
  54. Address: config.ConfigJson.DataSource.Address,
  55. UserName: config.ConfigJson.DataSource.UserName,
  56. PassWord: config.ConfigJson.DataSource.PassWord,
  57. DBName: config.ConfigJson.DataSource.DbName,
  58. MaxOpenConns: config.ConfigJson.DataSource.MaxOpenConns,
  59. MaxIdleConns: config.ConfigJson.DataSource.MaxIdleConns,
  60. }
  61. entity.Mysql.Init()
  62. //连接mysql
  63. //log.Println(config.ConfigJson.DataSource)
  64. //entity.Engine, err = xorm.NewEngine("mysql", config.ConfigJson.DataSource)
  65. //log.Println(err)
  66. //entity.Engine.ShowSQL(true)
  67. //if err != nil {
  68. // log.Fatal("数据库连接失败:", err)
  69. //}
  70. //fmt.Println(config.ConfigJson.DataSource + "链接成功")
  71. entity.Mysql11, err = sql.Open("mysql", config.ConfigJson.Mysql)
  72. if err != nil {
  73. panic(err.Error())
  74. }
  75. // 设置最大打开的连接数,默认值为0,表示不限制。
  76. entity.Mysql11.SetMaxOpenConns(20)
  77. // 设置最大闲置的连接数
  78. entity.Mysql11.SetMaxIdleConns(20)
  79. // 设置连接的最大生命周期,默认连接总是可重用。
  80. entity.Mysql11.SetConnMaxLifetime(time.Hour)
  81. }