成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

主頁 > 知識(shí)庫 > 利用go-kit組件進(jìn)行服務(wù)注冊與發(fā)現(xiàn)和健康檢查的操作

利用go-kit組件進(jìn)行服務(wù)注冊與發(fā)現(xiàn)和健康檢查的操作

熱門標(biāo)簽:壽光微信地圖標(biāo)注 涿州代理外呼系統(tǒng) 外呼系統(tǒng)用什么卡 excel地圖標(biāo)注分布數(shù)據(jù) 外呼系統(tǒng)顯本地手機(jī)號(hào) 評價(jià)高的400電話辦理 百度地圖標(biāo)注后傳給手機(jī) 阿克蘇地圖標(biāo)注 電話機(jī)器人軟件免費(fèi)

在go的微服務(wù)架構(gòu)中

使用go-kit組件進(jìn)行開發(fā)微服務(wù)

type Reg struct {
	Host string
	Port int
	Client consul.Client
}
func MakeReg (host string , port int) (*Reg , error) {
	reg := api.DefaultConfig()
	reg.Address = host + ":" + strconv.Itoa(port)
	apiclient , err = api.NewClient(reg)
	if err != nil {
		return nil , err
	}
	client := consul.NewClient(apiclient)
	return Reg{Host : host , Port : port ,Client : client} , nil
}
func (r Reg) Resiter (servicename , tag , host , seviceid ,checkinter ,healthcheckhttp ,deregisterafter string , port int) bool {
	congig := api.AgentServiceRegistration{
		Port : port ,
		Address : host ,
		Name := servicename,
		ID := serviceid,
		Ckeck : api.AgentServiceCheck{
			Interval : checkinter,
			HTTP : "http://" + host + ":" + healthcheckhttp ,
			DeregisterCriticalServiceAfter : deregisterafter,
		}
	}
	if err := r.Client.Register(config) ; err != nil {
		fmt.Println(err)
		return false
	}
	return true
}
func (r Reg) Deregister (serviceid string) bool {
	dreg := api.AgentServiceRegistration{ID : serviceid}
	if err != r.Client.Deregister(config) ; err != nil {
		fmt.Println(err)
		return false
	}
	return true
}
func (r Reg) discover (servicename , tag string ,passingonly bool) ( []*api.ServiceEntry ,error ) {
	if entries ,_ ,err := r.Client.Service(servicename , tag , passingonly , nil) ;err != nil {
		return nil ,err
	}else{
		return entries , nil
	}
}

補(bǔ)充:go-kit 與 grpc 結(jié)合實(shí)現(xiàn)注冊發(fā)現(xiàn)與負(fù)載均衡

介紹

grpc提供了簡單的負(fù)載均衡,需要自己實(shí)現(xiàn)服務(wù)發(fā)現(xiàn)resolve。我們既然要使用go-kit來治理微服務(wù),那么我們就使用go-kit的注冊發(fā)現(xiàn)、負(fù)載均衡機(jī)制。

go-kit官方【stringsvc3】例子中使用的負(fù)載均衡方案是通過服務(wù)端轉(zhuǎn)發(fā)進(jìn)行,翻找下源碼go-kit的服務(wù)注冊發(fā)現(xiàn)、負(fù)載均衡在【sd】包中。下面我們介紹怎么通過go-kit進(jìn)行客戶端負(fù)載均衡。

go-kit提供的注冊中心

1、 etcd

2、 consul

3、 eureka

4、 zookeeper

go-kit提供的負(fù)載均衡

1、 random[隨機(jī)]

2、 roundRobin[輪詢]

只需實(shí)現(xiàn)Balancer接口,我們可以很容易的增加其它負(fù)載均衡機(jī)制

type Balancer interface {  
   Endpoint() (endpoint.Endpoint, error)  
}

etcd注冊發(fā)現(xiàn)

etcd和zookeeper類似是一個(gè)高可用、強(qiáng)一致性的存儲(chǔ)倉庫,擁有服務(wù)發(fā)現(xiàn)功能。 我們就通過go-kit提供的etcd包來實(shí)現(xiàn)服務(wù)注冊發(fā)現(xiàn)

服務(wù)端代碼

服務(wù)注冊

1、連接注冊中心

2、注冊當(dāng)前服務(wù)

var (  
   //etcd服務(wù)地址  
   etcdServer = "127.0.0.1:2379"   
   //服務(wù)的信息目錄  
   prefix     = "/services/book/"    
   //當(dāng)前啟動(dòng)服務(wù)實(shí)例的地址  
   instance   = "127.0.0.1:50052"  
   //服務(wù)實(shí)例注冊的路徑  
   key        = prefix + instance    
   //服務(wù)實(shí)例注冊的val  
   value      = instance  
   ctx        = context.Background()  
   //服務(wù)監(jiān)聽地址  
   serviceAddress = ":50052"  
)  
//etcd的連接參數(shù)  
options := etcdv3.ClientOptions{  
   DialTimeout: time.Second * 3,  
   DialKeepAlive: time.Second * 3,  
}  
//創(chuàng)建etcd連接  
client, err := etcdv3.NewClient(ctx, []string{etcdServer}, options)  
if err != nil {  
   panic(err)  
}  
// 創(chuàng)建注冊器  
registrar := etcdv3.NewRegistrar(client, etcdv3.Service{  
   Key:   key,  
   Value: value,  
}, log.NewNopLogger())  
// 注冊器啟動(dòng)注冊  
registrar.Register()

完整代碼

package main  
import (  
   "grpc-test/pb"  
   "context"  
   grpc_transport "github.com/go-kit/kit/transport/grpc"  
   "github.com/go-kit/kit/endpoint" 
   "google.golang.org/grpc" 
   "net" 
   "github.com/go-kit/kit/sd/etcdv3" 
   "github.com/go-kit/kit/log" 
   "time"
)  
type BookServer struct {  
   bookListHandler  grpc_transport.Handler  
   bookInfoHandler  grpc_transport.Handler  
}  
//通過grpc調(diào)用GetBookInfo時(shí),GetBookInfo只做數(shù)據(jù)透傳, 調(diào)用BookServer中對應(yīng)Handler.ServeGRPC轉(zhuǎn)交給go-kit處理  
func (s *BookServer) GetBookInfo(ctx context.Context, in *book.BookInfoParams) (*book.BookInfo, error) {  
   _, rsp, err := s.bookInfoHandler.ServeGRPC(ctx, in)  
   if err != nil {  
      return nil, err  
   }  
   return rsp.(*book.BookInfo),err  
}  
//通過grpc調(diào)用GetBookList時(shí),GetBookList只做數(shù)據(jù)透傳, 調(diào)用BookServer中對應(yīng)Handler.ServeGRPC轉(zhuǎn)交給go-kit處理  
func (s *BookServer) GetBookList(ctx context.Context, in *book.BookListParams) (*book.BookList, error) {  
   _, rsp, err := s.bookListHandler.ServeGRPC(ctx, in)  
   if err != nil {  
      return nil, err  
   }  
   return rsp.(*book.BookList),err  
}  
//創(chuàng)建bookList的EndPoint  
func makeGetBookListEndpoint() endpoint.Endpoint {  
   return func(ctx context.Context, request interface{}) (interface{}, error) {  
      //請求列表時(shí)返回 書籍列表  
      bl := new(book.BookList)  
      bl.BookList = append(bl.BookList, book.BookInfo{BookId:1,BookName:"21天精通php"})  
      bl.BookList = append(bl.BookList, book.BookInfo{BookId:2,BookName:"21天精通java"})  
      return bl,nil  
   }  
}  
//創(chuàng)建bookInfo的EndPoint  
func makeGetBookInfoEndpoint() endpoint.Endpoint {  
   return func(ctx context.Context, request interface{}) (interface{}, error) {  
      //請求詳情時(shí)返回 書籍信息  
      req := request.(*book.BookInfoParams)  
      b := new(book.BookInfo)  
      b.BookId = req.BookId  
      b.BookName = "21天精通php"  
      return b,nil  
   }  
}  
func decodeRequest(_ context.Context, req interface{}) (interface{}, error) {  
   return req, nil  
}  
func encodeResponse(_ context.Context, rsp interface{}) (interface{}, error) {  
   return rsp, nil  
}  
func main() {  
   var (  
      //etcd服務(wù)地址  
      etcdServer = "127.0.0.1:2379"  
      //服務(wù)的信息目錄  
      prefix     = "/services/book/"  
      //當(dāng)前啟動(dòng)服務(wù)實(shí)例的地址  
      instance   = "127.0.0.1:50052"  
      //服務(wù)實(shí)例注冊的路徑  
      key        = prefix + instance  
      //服務(wù)實(shí)例注冊的val  
      value      = instance  
      ctx        = context.Background()  
      //服務(wù)監(jiān)聽地址  
      serviceAddress = ":50052"  
   )  
   //etcd的連接參數(shù)  
   options := etcdv3.ClientOptions{  
      DialTimeout: time.Second * 3,  
      DialKeepAlive: time.Second * 3,  
   }  
   //創(chuàng)建etcd連接  
   client, err := etcdv3.NewClient(ctx, []string{etcdServer}, options)  
   if err != nil {  
      panic(err)  
   }  
   // 創(chuàng)建注冊器  
   registrar := etcdv3.NewRegistrar(client, etcdv3.Service{  
      Key:   key,  
      Value: value,  
   }, log.NewNopLogger())  
   // 注冊器啟動(dòng)注冊  
   registrar.Register()  
   bookServer := new(BookServer)  
   bookListHandler := grpc_transport.NewServer(  
      makeGetBookListEndpoint(),  
      decodeRequest,  
      encodeResponse,  
   )  
   bookServer.bookListHandler = bookListHandler  
   bookInfoHandler := grpc_transport.NewServer(  
      makeGetBookInfoEndpoint(),  
      decodeRequest,  
      encodeResponse,  
   )  
   bookServer.bookInfoHandler = bookInfoHandler  
   ls, _ := net.Listen("tcp", serviceAddress)  
   gs := grpc.NewServer(grpc.UnaryInterceptor(grpc_transport.Interceptor))  
   book.RegisterBookServiceServer(gs, bookServer)  
   gs.Serve(ls)  
}

客戶端代碼

客戶端流程

1、 連接注冊中心

2、 獲取提供的服務(wù)

3、 監(jiān)聽服務(wù)目錄變化,目錄變化更新本地緩存

4、 創(chuàng)建負(fù)載均衡器

5、 獲取請求的 endPoint

完整代碼

package main  
import (  
   "context"  
   "github.com/go-kit/kit/sd/etcdv3" 
   "time" 
   "github.com/go-kit/kit/sd" 
   "github.com/go-kit/kit/log" 
   "github.com/go-kit/kit/endpoint" 
   "io" 
   "github.com/go-kit/kit/sd/lb" 
   "grpc-test/pb" 
   "fmt" 
   "google.golang.org/grpc"
)  
func main() {  
   var (  
      //注冊中心地址  
      etcdServer = "127.0.0.1:2379"  
      //監(jiān)聽的服務(wù)前綴  
      prefix     = "/services/book/"  
      ctx        = context.Background()  
   )  
   options := etcdv3.ClientOptions{  
      DialTimeout: time.Second * 3,  
      DialKeepAlive: time.Second * 3,  
   }  
   //連接注冊中心  
   client, err := etcdv3.NewClient(ctx, []string{etcdServer}, options)  
   if err != nil {  
      panic(err)  
   }  
   logger := log.NewNopLogger()  
   //創(chuàng)建實(shí)例管理器, 此管理器會(huì)Watch監(jiān)聽etc中prefix的目錄變化更新緩存的服務(wù)實(shí)例數(shù)據(jù)  
   instancer, err := etcdv3.NewInstancer(client, prefix, logger)  
   if err != nil {  
      panic(err)  
   }  
   //創(chuàng)建端點(diǎn)管理器, 此管理器根據(jù)Factory和監(jiān)聽的到實(shí)例創(chuàng)建endPoint并訂閱instancer的變化動(dòng)態(tài)更新Factory創(chuàng)建的endPoint  
   endpointer := sd.NewEndpointer(instancer, reqFactory, logger)  
   //創(chuàng)建負(fù)載均衡器  
   balancer := lb.NewRoundRobin(endpointer)  
   /**  
   我們可以通過負(fù)載均衡器直接獲取請求的endPoint,發(fā)起請求  
   reqEndPoint,_ := balancer.Endpoint() 
   */  
   /**  
   也可以通過retry定義嘗試次數(shù)進(jìn)行請求  
   */  
   reqEndPoint := lb.Retry(3, 3*time.Second, balancer)  
   //現(xiàn)在我們可以通過 endPoint 發(fā)起請求了  
   req := struct{}{}  
   if _, err = reqEndPoint(ctx, req); err != nil {  
      panic(err)  
   }  
}  
//通過傳入的 實(shí)例地址  創(chuàng)建對應(yīng)的請求endPoint  
func reqFactory(instanceAddr string) (endpoint.Endpoint, io.Closer, error) {  
   return func(ctx context.Context, request interface{}) (interface{}, error) {  
      fmt.Println("請求服務(wù): ", instanceAddr)
      conn, err := grpc.Dial(instanceAddr, grpc.WithInsecure())  
      if err != nil {  
         fmt.Println(err)  
         panic("connect error")  
      }  
      defer conn.Close()  
      bookClient := book.NewBookServiceClient(conn)  
      bi,_:=bookClient.GetBookInfo(context.Background(),book.BookInfoParams{BookId:1})  
      fmt.Println("獲取書籍詳情")  
      fmt.Println("bookId: 1", " => ", "bookName:", bi.BookName)  
      bl,_ := bookClient.GetBookList(context.Background(), book.BookListParams{Page:1, Limit:10})  
      fmt.Println("獲取書籍列表")  
      for _,b := range bl.BookList {  
         fmt.Println("bookId:", b.BookId, " => ", "bookName:", b.BookName)  
      }  
      return nil,nil  
   },nil,nil  
} 

測試

請求測試

請求服務(wù): 127.0.0.1:50052
獲取書籍詳情
bookId: 1  =>  bookName: 21天精通php
獲取書籍列表
bookId: 1  =>  bookName: 21天精通php
bookId: 2  =>  bookName: 21天精通java

負(fù)載均衡測試

1、 修改server的注冊監(jiān)聽端口,啟動(dòng)多個(gè)server

instance   = "127.0.0.1:50052"  
serviceAddress = ":50052"

2、client發(fā)起多次請求

req := struct{}{}  
for i := 1; i = 8; i++ {  
   if _, err = reqEndPoint(ctx, req); err != nil {  
      panic(err)  
   }  
}

通過返回結(jié)果中記錄的請求地址,我們可以看到已經(jīng)按照輪詢的方式請求不同的微服務(wù)實(shí)例。

請求服務(wù):  127.0.0.1:50051
        獲取書籍詳情
        bookId: 1  =>  bookName: 21天精通php
        獲取書籍列表
        bookId: 1  =>  bookName: 21天精通php
        bookId: 2  =>  bookName: 21天精通java
請求服務(wù):  127.0.0.1:50052
        獲取書籍詳情
        bookId: 1  =>  bookName: 21天精通php
        獲取書籍列表
        bookId: 1  =>  bookName: 21天精通php
        bookId: 2  =>  bookName: 21天精通java
請求服務(wù):  127.0.0.1:50051
        獲取書籍詳情
        bookId: 1  =>  bookName: 21天精通php
        獲取書籍列表
        bookId: 1  =>  bookName: 21天精通php
        bookId: 2  =>  bookName: 21天精通java
請求服務(wù):  127.0.0.1:50052
        獲取書籍詳情
        bookId: 1  =>  bookName: 21天精通php
        獲取書籍列表
        bookId: 1  =>  bookName: 21天精通php
        bookId: 2  =>  bookName: 21天精通java
請求服務(wù):  127.0.0.1:50051
        獲取書籍詳情
        bookId: 1  =>  bookName: 21天精通php
        獲取書籍列表
        bookId: 1  =>  bookName: 21天精通php
        bookId: 2  =>  bookName: 21天精通java
請求服務(wù):  127.0.0.1:50052
        獲取書籍詳情
        bookId: 1  =>  bookName: 21天精通php
        獲取書籍列表
        bookId: 1  =>  bookName: 21天精通php
        bookId: 2  =>  bookName: 21天精通java
請求服務(wù):  127.0.0.1:50051
        獲取書籍詳情
        bookId: 1  =>  bookName: 21天精通php
        獲取書籍列表
        bookId: 1  =>  bookName: 21天精通php
        bookId: 2  =>  bookName: 21天精通java
請求服務(wù):  127.0.0.1:50052
        獲取書籍詳情
        bookId: 1  =>  bookName: 21天精通php
        獲取書籍列表
        bookId: 1  =>  bookName: 21天精通php
        bookId: 2  =>  bookName: 21天精通java
Process finished with exit code 0

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。

您可能感興趣的文章:
  • Goland 斷點(diǎn)調(diào)試Debug的操作
  • golang中的空slice案例
  • Go語言切片前或中間插入項(xiàng)與內(nèi)置copy()函數(shù)詳解
  • golang中切片copy復(fù)制和等號(hào)復(fù)制的區(qū)別介紹
  • go語言中切片與內(nèi)存復(fù)制 memcpy 的實(shí)現(xiàn)操作
  • Go語言中的UTF-8實(shí)現(xiàn)
  • go-kit組件使用hystrix中間件的操作

標(biāo)簽:梅河口 銅川 重慶 汕頭 欽州 雞西 吐魯番 蘭州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《利用go-kit組件進(jìn)行服務(wù)注冊與發(fā)現(xiàn)和健康檢查的操作》,本文關(guān)鍵詞  利用,go-kit,組件,進(jìn)行,服務(wù),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《利用go-kit組件進(jìn)行服務(wù)注冊與發(fā)現(xiàn)和健康檢查的操作》相關(guān)的同類信息!
  • 本頁收集關(guān)于利用go-kit組件進(jìn)行服務(wù)注冊與發(fā)現(xiàn)和健康檢查的操作的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    夜夜爽视频导航| 亚洲资源在线看| 日韩欧美亚洲国产精品字幕久久久| 亚洲精品伦理| 免费大片黄在线| 日日干夜夜骑| 另类av导航| 成人短视频在线| 亚洲欧美国产日韩中文字幕| 色综合天天综合网国产成人网| 亚洲午夜精品久久久久久久久| www.久久色.com| www..com.cn蕾丝视频在线观看免费版| 日本黄色小说视频| 亚洲成人福利视频| 亚洲激情中文| 亚洲欧洲在线视频| 日韩三级一区二区| 中文字幕网av| 成人免费的视频| 大胆人体一区二区| 国产在线999| 亚洲久本草在线中文字幕| 久久久久国产精品熟女影院| 中文字幕免费视频观看| 欧美激情在线一区| 天天夜碰日日摸日日澡| 91看片在线免费观看| 久久嫩草精品久久久精品一| v888av成人| 国产三级在线免费观看| 久久黄色美女电影| 午夜久久久久久久久久久| 欧美日韩一区在线| 国产69精品久久久久按摩| 日韩中文字幕在线不卡| 精品国产aⅴ| 三级毛片电影网站| 成人在线视频一区二区三区| 中文字幕日韩精品在线| 国产日韩欧美亚洲| 欧美高清一区| 国产亚洲成av人片在线观看桃| 欧美极品少妇xxxxⅹ免费视频| 国产aⅴ2021| 亚洲香蕉伊在人在线观| 国产欧美视频一区| 久久精品国产精品亚洲精品色| 欧美成人在线网站| 日本精品一区二区三区在线播放| 国产日产欧美视频| 久久夜色精品国产| 欧美性潮喷xxxxx免费视频看| 肥臀熟女一区二区三区| 久久久久久久国产精品视频| 亚洲成年人专区| 少妇激情一区二区三区| 日韩有码片在线观看| 精品视频在线观看免费观看| 无遮挡又色又刺激的女人视频| 国产资源在线一区| 欧美日韩中文字幕在线观看| 久久综合久久综合亚洲| 久久九九99视频| 亚洲第一网站在线观看| 精品久久久久久久久久久久| eeuss影院在线播放| 99精品欧美一区二区三区综合在线| 午夜影视日本亚洲欧洲精品| 欧美成人性生活视频| 性xx色xx综合久久久xx| 91精品人妻一区二区三区蜜桃2| 成年人在线免费| 精品人妻一区二区免费| 欧美不卡一区二区三区| 日本一区二区成人| 欧美激情视频一区二区| 黄色www在线观看| 另类尿喷潮videofree| 亚洲伊人一本大道中文字幕| 日本女优在线视频一区二区| 国产狂喷白浆在线观看视频| 51一区二区三区| 久久综合色之久久综合| 做a视频在线观看| 亚欧美无遮挡hd高清在线视频| 亚洲精品日韩专区silk| 欧美亚洲人成在线| 国产人妻精品一区二区三区| 中文国产亚洲喷潮| 国产精品av在线| 精品国产不卡一区二区三区| 99九九99九九九视频精品| 精品无码人妻一区二区三区品| 第一页在线视频| 免费在线视频你懂得| 日韩欧美亚洲一二三区| 亚洲精品tv久久久久久久久久| 日韩欧美久久| 性猛交娇小69hd| 五月综合久久| 一级国产黄色片| 精品国产乱码久久久久久免费| 亚洲欧洲xxxx| 亚洲一区二区三区四区五区中文| 国产精品91一区二区| 日韩视频一区二区三区在线播放免费观看| 中文字幕无码乱码人妻日韩精品| 成人免费黄色在线| 亚洲高清视频免费| 少妇献身老头系列| 久久精品人人做人人爽| 色综合天天色综合| 久久一区二区三区欧美亚洲| 中文在线a在线| 熟女少妇一区二区三区| 日韩女同强女同hd| 性xxxfllreexxx少妇| 91精品国产高清一区二区三蜜臀| aa视频在线观看| 青青草在线免费观看| 久久精品日产第一区二区三区乱码| eeuss影院www在线播放| 黄色激情在线播放| 青春草免费在线视频| 96精品视频在线| 希岛爱理av一区二区三区| 成人免费大片黄在线播放| 在线看福利67194| 天天操天天干天天舔| 天堂99x99es久久精品免费| 91精品又粗又猛又爽| www.-级毛片线天内射视视| 亚洲成人自拍网| 小小的日本在线观看免费色网| 久久精品国产欧美激情| 精品卡一卡二卡三卡四在线| 91精品人妻一区二区三区蜜桃欧美| 在线黄色免费看| 久久久久国产一区| 91精品欧美一区二区三区综合在| 国产伦精品一区二区三区照片91| 天堂网www中文在线| 国产精品乱码久久久久| 高清在线一区二区| 男人天堂av在线播放| 大香煮伊手机一区| 国产精品久久久久久五月尺| 成年女人a毛片免费视频| 日本福利片免费看| 中文字幕一区二区三区在线视频| 精品全国在线一区二区| 国内精品麻豆| 国产成人视屏| 熟女俱乐部一区二区视频在线| 国产精品福利视频一区二区三区| 亚洲成人久久电影| 精品视频全国免费看| 黄页网站在线| 亚洲美女黄网| 91精品国产综合久久精品麻豆| 一级黄色大毛片| 欧美色综合网站| 国产在线观看不卡一区二区三区| 国产福利第一视频在线播放| 国产人久久人人人人爽| 午夜av免费在线观看| 国产成人精品777777| 日韩亚洲欧美一区二区| 国产欧美一区二区三区视频| 精品成人一区二区三区| 亚洲尤物在线视频观看| 理论片午夜视频在线观看| 最新中文字幕在线视频| 国产成人的电影在线观看| 精品视频二区三区| 91欧美激情一区二区三区成人| 久久五月精品中文字幕| 欧美—级高清免费播放| 成人福利免费在线观看| 调教+趴+乳夹+国产+精品| 国产美女性感在线观看懂色av| 在线观看成人影院| 日产福利视频在线观看| 欧美卡一卡二| 成午夜精品一区二区三区软件| av片哪里在线观看| 国产福利一区二区三区在线播放| 国产午夜精品久久久久| 6080亚洲精品一区二区| 日韩电影在线观看永久视频免费网站| 范冰冰一级做a爰片久久毛片| 国产精品免费观看在线| 亚洲图片欧美午夜| 久久9精品区-无套内射无码| 91精品国产成人观看| 伊人成人在线观看| 乳奴隷乳フ辱julia在线观看| 色先锋资源久久综合5566| 国产不卡一区视频| 伊人久久大香线蕉av超碰| 久久综合999| 国产欧美日本一区二区三区| 欧美老女人另类| 中文av字幕一区| 亚洲 欧美综合在线网络| 成人av在线电影| 日韩亚洲第一页| 国产福利久久久| 日产中文字幕在线精品一区| 亚洲六月丁香色婷婷综合久久| 精品日本一线二线三线不卡| 精品视频二区三区| 男人最爱成人网| 灌醉mj刚成年的大学平面模特| 日本欧美韩国一区三区| 亚洲综合成人在线视频| 日本高清不卡在线| 国严精品久久久久久亚洲影视| 8x8x华人在线| 九九综合久久| 爱情岛论坛亚洲品质自拍视频网站| 深夜福利视频一区二区| 亚洲视频在线一区二区| 成人羞羞网站入口| 夜色资源网av在先锋网站观看| 91九色成人| 久操免费在线| 97精品久久久久中文字幕| 中日韩美女免费视频网站在线观看| 亚洲精品日韩av| 亚洲欧洲99久久| 一区二区三区动漫| 在线精品视频免费播放| 国产精品一在线观看| 欧美专区一区| 日本黄色小说视频| 亚洲熟妇无码另类久久久| 久久成人人人人精品欧| 91视频观看| 青青青在线视频免费观看| 久久精品免费观看| 麻豆国产原创| 亚洲电影有码| 亚洲我射av| 99在线免费观看| 亚洲片区在线| 99国产精品久久久久99打野战| 亚洲精品成人影院| 国产美女在线免费观看| 亚洲人成影院77777| www视频在线观看免费| 亚洲视频 欧美视频| 欧美激情亚洲另类| 影音先锋久久资源网| 国外亚洲成av人片在线观看| 国产又黄又爽免费视频| 色噜噜狠狠一区二区三区果冻| av电影资源| 亚洲乱码av中文一区二区| 一区二区在线免费| 亚洲乱码国产乱码精品精的特点| 天天综合日日夜夜精品| 午夜剧场免费在线观看| 最近免费中文字幕视频2019| 欧美a级一区| 亚洲线精品一区二区三区八戒| 久久天天躁狠狠躁夜夜躁| 四虎永久免费| 亚洲自拍三区| 亚洲香蕉在线观看| 91九色论坛| 国产区美女在线| 精品久久久久久无码国产| 成人三级视频在线播放| 国产福利第一视频| 超碰人人干人人| 94色蜜桃网一区二区三区| 成人av在线播放网站| 男人网站在线观看| 亚洲狠狠婷婷综合久久久| 先锋资源一区二区| av在线不卡免费观看| 日韩欧美综合在线| 中国一级特黄毛片大片| av综合网页| 美女翘臀白浆直流视频| 偷拍视频一区二区| 久久天天躁狠狠躁夜夜av| 成人国产电影在线观看| 精品国产视频在线观看| 日韩精品一区二区三区第95| 欧美性大战久久久久久久| 国产97在线观看| 亚洲一本二本| www一区二区三区| 日韩国产欧美精品一区二区三区| 欧美无砖砖区免费| 日韩午夜一区| 国产欧美一区二区三区小说| 暖暖影院日本高清...免费| 91精品国产自产观看在线| 国产·精品毛片| 任你操这里只有精品| 日韩高清在线一区| 久久精品国产一区二区三区不卡| 国产精品亚洲欧美一级在线| 成人精品视频久久久久| 狠狠色丁香久久婷婷综合丁香| 麻豆免费版在线观看| 少妇一级淫免费放| 99久久婷婷国产综合精品| 国产99在线|中文| 不卡一区二区三区四区| 999成人精品视频线3| 国产乱在线观看视频| 国产成人午夜99999| 先锋资源在线视频| yourporn久久国产精品| 91精品国产91久久久久久青草| 日韩影片在线播放| 91久久精品国产91久久性色| 国精品人妻无码一区二区三区喝尿| www.香蕉视频| 成人天堂资源www在线| 久久这里有精品15一区二区三区| 亚洲人的天堂男人爽爽爽| 亚洲av无码片一区二区三区|