Service 介绍

Service是 不直接与用户交互的运行于后台的组件。

1. 需要在AndroidManifest.xml文件中使用<service>标签声明。

2.重写Service的回调方法

3. 必须用一个Context对象调用StartService(),或者bindService()方法启动服务。

 Broadcast是一种在应用程序间传输信息的机制。而BroadcastReceiver是对发送出来的Broadcast进行过滤接受并响应的一类组件。

1. 在需要发送信息的地方,把要发送的信息和用于过滤的信息(如Action、Category)装入一个Intent对象

2. 调用Context.sendBroadcast()、sendOrderedBroadcast()、或者sendStickyBroadcast()方法,把Intent对象以广播的形式发送出去。


注册BroadcastReceiver有两种方式:

1. 一种方式是静态地在AndroidManifest.xml中用<receiver>标签声明注册,并在标签内用<intent-filter>标签设置过滤器。

2.另一种方式是,动态地在代码中先定义并设置好一个IntentFilter对象,然后在需要注册的地方调用Context.registerReceiver()方法,如果取消注册时就调用Context.unRegisterReceiver()方法。


在Kubernetes中,Service是一种抽象概念,它定义了一组Pod的逻辑集合和一种可以访问它们的策略,为Pod提供了稳定的网络端点。以下是详细介绍: ### 作用 - **服务发现**:Kubernetes中的Pod是有生命周期的,可能会动态创建、销毁。Service为一组具有相同功能的Pod提供了一个固定的IP地址和DNS名称,使得其他Pod可以通过这个固定的地址来访问它们,无需关心具体Pod的IP地址变化。 - **负载均衡**:Service可以将请求均匀地分发到后端的多个Pod上,从而实现负载均衡,提高应用的可用性和性能。 ### 类型 - **ClusterIP**:默认类型,服务只能在集群内部访问,通过分配一个集群内部的虚拟IP地址来实现。 ```yaml apiVersion: v1 kind: Service metadata: name: my-service spec: selector: app: MyApp ports: - protocol: TCP port: 80 targetPort: 9376 ``` - **NodePort**:在每个节点上开放一个端口,外部可以通过节点的IP地址和该端口访问服务。 ```yaml apiVersion: v1 kind: Service metadata: name: my-service spec: type: NodePort selector: app: MyApp ports: - protocol: TCP port: 80 targetPort: 9376 nodePort: 30007 ``` - **LoadBalancer**:使用云提供商的负载均衡器,将流量导向服务。 ```yaml apiVersion: v1 kind: Service metadata: name: my-service spec: type: LoadBalancer selector: app: MyApp ports: - protocol: TCP port: 80 targetPort: 9376 ``` - **ExternalName**:将服务映射到一个外部域名。 ```yaml apiVersion: v1 kind: Service metadata: name: my-service namespace: prod spec: type: ExternalName externalName: my.database.example.com ``` ### 工作原理 - **标签选择器**:Service通过标签选择器(Label Selector)来关联一组Pod。只有带有指定标签的Pod才会被纳入到Service的负载均衡池中。 - **Endpoint对象**:Kubernetes会为每个Service创建一个对应的Endpoint对象,该对象记录了所有匹配标签选择器的Pod的IP地址和端口信息。当请求到达Service时,会根据Endpoint对象中的信息将请求转发到后端的Pod上。 ### 创建和管理 - **创建**:可以使用`kubectl create -f service.yaml`命令来创建一个Service,其中`service.yaml`是包含Service定义的YAML文件。 - **查看**:使用`kubectl get services`命令查看集群中的所有Service。 - **删除**:使用`kubectl delete service <service-name>`命令删除指定的Service
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值