Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
superrain51
apollo
提交
71128118
apollo
项目概览
superrain51
/
apollo
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
apollo
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
71128118
编写于
5月 18, 2016
作者:
J
Jason Song
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
add appId and ip address when querying from meta server
上级
b9ff6841
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
25 addition
and
3 deletion
+25
-3
apollo-client/src/main/java/com/ctrip/apollo/internals/ConfigServiceLocator.java
...java/com/ctrip/apollo/internals/ConfigServiceLocator.java
+21
-2
apollo-configservice/src/main/java/com/ctrip/apollo/metaservice/controller/ServiceController.java
...trip/apollo/metaservice/controller/ServiceController.java
+4
-1
未找到文件。
apollo-client/src/main/java/com/ctrip/apollo/internals/ConfigServiceLocator.java
浏览文件 @
71128118
package
com.ctrip.apollo.internals
;
import
com.google.common.base.Joiner
;
import
com.google.common.collect.Lists
;
import
com.google.common.collect.Maps
;
import
com.google.common.escape.Escaper
;
import
com.google.common.net.UrlEscapers
;
import
com.google.gson.reflect.TypeToken
;
import
com.ctrip.apollo.core.dto.ServiceDTO
;
...
...
@@ -19,9 +23,11 @@ import org.slf4j.Logger;
import
org.slf4j.LoggerFactory
;
import
org.unidal.lookup.annotation.Inject
;
import
org.unidal.lookup.annotation.Named
;
import
org.unidal.net.Networks
;
import
java.lang.reflect.Type
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.concurrent.Executors
;
import
java.util.concurrent.ScheduledExecutorService
;
import
java.util.concurrent.TimeUnit
;
...
...
@@ -37,6 +43,7 @@ public class ConfigServiceLocator implements Initializable {
private
AtomicReference
<
List
<
ServiceDTO
>>
m_configServices
;
private
Type
m_responseType
;
private
ScheduledExecutorService
m_executorService
;
private
static
final
Joiner
.
MapJoiner
MAP_JOINER
=
Joiner
.
on
(
"&"
).
withKeyValueSeparator
(
"="
);
/**
* Create a config service locator.
...
...
@@ -96,8 +103,7 @@ public class ConfigServiceLocator implements Initializable {
}
private
synchronized
void
updateConfigServices
()
{
String
domainName
=
m_configUtil
.
getMetaServerDomainName
();
String
url
=
domainName
+
"/services/config"
;
String
url
=
assembleMetaServiceUrl
();
HttpRequest
request
=
new
HttpRequest
(
url
);
int
maxRetries
=
5
;
...
...
@@ -130,6 +136,19 @@ public class ConfigServiceLocator implements Initializable {
throw
new
RuntimeException
(
"Get config services failed"
,
exception
);
}
private
String
assembleMetaServiceUrl
()
{
String
domainName
=
m_configUtil
.
getMetaServerDomainName
();
String
appId
=
m_configUtil
.
getAppId
();
String
localIp
=
Networks
.
forIp
().
getLocalHostAddress
();
Escaper
escaper
=
UrlEscapers
.
urlPathSegmentEscaper
();
Map
<
String
,
String
>
queryParams
=
Maps
.
newHashMap
();
queryParams
.
put
(
"appId"
,
escaper
.
escape
(
appId
));
queryParams
.
put
(
"ip"
,
escaper
.
escape
(
localIp
));
return
domainName
+
"/services/config?"
+
MAP_JOINER
.
join
(
queryParams
);
}
private
void
logConfigServicesToCat
(
List
<
ServiceDTO
>
serviceDtos
)
{
for
(
ServiceDTO
serviceDto
:
serviceDtos
)
{
Cat
.
logEvent
(
"Apollo.Config.Services"
,
serviceDto
.
getHomepageUrl
());
...
...
apollo-configservice/src/main/java/com/ctrip/apollo/metaservice/controller/ServiceController.java
浏览文件 @
71128118
...
...
@@ -6,6 +6,7 @@ import com.netflix.appinfo.InstanceInfo;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.bind.annotation.RestController
;
import
java.util.List
;
...
...
@@ -39,7 +40,9 @@ public class ServiceController {
}
@RequestMapping
(
"/config"
)
public
List
<
ServiceDTO
>
getConfigService
()
{
public
List
<
ServiceDTO
>
getConfigService
(
@RequestParam
(
value
=
"appId"
,
defaultValue
=
""
)
String
appId
,
@RequestParam
(
value
=
"ip"
,
defaultValue
=
""
)
String
clientIp
)
{
List
<
InstanceInfo
>
instances
=
discoveryService
.
getConfigServiceInstances
();
List
<
ServiceDTO
>
result
=
instances
.
stream
().
map
(
new
Function
<
InstanceInfo
,
ServiceDTO
>()
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录